/**
 * @INoticeFilter.as
 * 
 * @author sodaChen mail:asframe@163.com
 * @version 1.0
 * <br>Copyright (C), 2012 ASFrame.com
 * <br>This program is protected by copyright laws.
 * <br>Program Name:ASFrame AStruts2
 * <br>Date:2012-4-12
 */
package com.asframe.astruts2.interfaces
{
	import com.asframe.astruts2.context.IAStrutsContext;

	/**
	 * 通知拦截器接口,控制通知的流程，可以提前处理或者最后处理.同时它可以终止此次的通知。
	 * 注意，在程序执行的过程中，如果中途有通过IAstrutsContext进行注册进来的notice，也是会被该接口进行相关的监听的(条件满足的情况下)。
	 * @author sodaChen
	 * @Date:2012-4-12
	 */
	public interface INoticeFilter
	{
		/**
		 * 拦截需要拦截的通知数组 
		 * @return 
		 * 
		 */		
		function getNotices():Array;
		/**
		 * 拦截通知
		 * @param notice 通知名称
		 * @param args 参数
		 * @param context 上下文
		 * @return 是否终止此次通知
		 */		
		function doFilter(notice:*,args:Array,context:IAStrutsContext):Boolean;
	}
}
